package redis

import (
	"github.com/go-redis/redis"
	"go-web-admin/logger"
)

type RedisConfig struct {

	// 连接地址和端口
	Addr string `mapstructure:"addr"`
	// 密码
	Password string `mapstructure:"password"`
	// 数据库
	DB int `mapstructure:"db"`
	// 连接池的大小
	PoolSize int `mapstructure:"pool_size"`
}

var RDB *redis.Client

// InitClient 初始化redis
func InitClient(redisConf RedisConfig) {

	RDB = redis.NewClient(&redis.Options{
		// 连接地址和端口
		Addr: redisConf.Addr,
		// 密码
		Password: redisConf.Password,
		// 数据库
		DB: redisConf.DB,
		// 连接池的大小
		PoolSize: redisConf.PoolSize,
	})

	_, err := RDB.Ping().Result()
	if err != nil {
		logger.Log.Errorf("Redis连接失败: %v", err)
		panic(err)
	}

	logger.Log.Info("Redis连接成功....")
}
